prepare_for_smp();
#endif
- printk("<0>Starting enable cpu.\n");
/* get the target out of its holding state */
per_cpu(cpu_state, cpu) = CPU_UP_PREPARE;
wmb();
while (!cpu_online(cpu))
cpu_relax();
- printk("<0>Calling fixup_irqs.\n");
fixup_irqs(cpu_online_map);
- printk("<0>Called fixup_irqs.\n");
/* counter the disable in fixup_irqs() */
local_irq_enable();
cpu_clear(cpu, map);
fixup_irqs(map);
- printk("<0>Done fixup_irqs.\n");
-
- local_irq_enable();
- printk("<0>Interrupts on.\n");
- local_irq_disable();
- printk("<0>Interrupts off again.\n");
/* It's now safe to remove this processor from the online map */
cpu_clear(cpu, cpu_online_map);
/* Already up, and in cpu_quiescent now? */
if (cpu_isset(cpu, smp_commenced_mask)) {
cpu_enable(cpu);
- printk("<0>cpu_enable completed.\n");
return 0;
}
#endif
evtchn_op_t op;
int evtchn;
- printk("<0>Rebind irq %d to vcpu %d.\n", irq, tcpu);
spin_lock(&irq_mapping_update_lock);
evtchn = irq_to_evtchn[irq];
if (!VALID_EVTCHN(evtchn)) {
return;
}
- printk("<0>Is evtchn %d.\n", evtchn);
-
/* Tell Xen to send future instances of this interrupt to the
other vcpu */
op.cmd = EVTCHNOP_bind_vcpu;
from the hotplug/hotunplug path. In that case, all cpus are
stopped with interrupts disabled, and the missed interrupts
will be picked up when they start again. This is kind of a
- hack. */
+ hack.
+ */
if (!irqs_disabled()) {
- printk("<0>Doing nop ipi\n");
smp_call_function(do_nothing_function, NULL, 0, 0);
- printk("<0>Done nop ipi\n");
}
}